using System.Collections.Generic;
using System.Reflection;
using NLite.Reflection;
using System;

namespace NLite.Mini.Internal
{
   
    interface IInjectionInfo
    {
        string Id { get; }
        Setter Setter { get; }
        Type MemberType { get; }
        int Source { get; }
        Proc Method { get; }
        ParameterInfo[] Parameters { get; }
    }

    class InjectionInfo : IInjectionInfo
    {
        public string Id { get; internal set; }
        public Setter Setter { get; internal set; }
        public Type MemberType { get; internal set; }
        public int Source { get;internal set;}
        public ParameterInfo[] Parameters { get; internal set; }
        public Proc Method { get; internal set; }
    }

    class InjectionSource
    {
        public const int
            Container = 0,
            AppSettings = 1
            ;

    }
}
